\section{Introduction}

This document covers the Machine Learning API of the OpenCV2 C++ API. It helps you with setting up your system, gives a brief introduction into Support Vector Machines and Neural Networks and shows how it's implemented with OpenCV. Machine Learning is a branch of Artificial Intelligence and concerned with the question how to make machines able to learn from data. The core idea is to enable a machine to make intelligent decisions and predictions, based on experiences from the past. Algorithms of Machine Learning require interdisciplinary knowledge and often intersect with topics of statistics, mathematics, physics, pattern recognition and more.

\href{http://opencv.willowgarage.com}{OpenCV2} comes with a machine learning library for:
\begin{itemize}
 \item Decision Trees
 \item Boosting
 \item Support Vector Machines
 \item Expectation Maximization
 \item Neural Networks
\end{itemize}

\href{http://opencv.willowgarage.com}{OpenCV (Open Source Computer Vision)} is a popular computer vision library started by \href{http://www.intel.com}{Intel} in 1999. The cross-platform library sets its focus on real-time image processing and includes patent-free implementations of the latest computer vision algorithms. In 2008 \href{http://www.willowgarage.com}{Willow Garage} took over support and OpenCV 2.3.1 now comes with a programming interface to C, C++, \href{http://www.python.org}{Python} and \href{http://www.android.com}{Android}. OpenCV is released under a BSD license, so it is used in academic and commercial projects such as \href{http://www.google.com/streetview}{Google Streetview}.

Please don't copy and paste the code from this document, the project has been uploaded to \url{http://www.github.com/bytefish/opencv}. All code is released under a \href{http://www.opensource.org/licenses/bsd-license}{BSD license}, so feel free to use it for your projects.
